const express = require('express');
const router = express.Router();
const Article = require('../../../controller/client/article-controller');

/**
 * 创建 - 创建文章
 * @route POST /api/private/article/create
 * @group 文章管理 - 创建
 * @param {object} tags - 文章标签
 * @param {number} sortId - 文章排序
 * @param {string} articleAuthor - 文章作者
 * @param {string} articleType - 文章类别
 * @param {string} articleTypeId - 文章类别id
 * @param {string} articleTitle - 文章标题
 * @param {string} articleSummary - 文章摘要
 * @param {string} articleContent - 文章内容
 * @param {string} articleCover - 文章封面
 * @param {string} status - 文章状态
 * @param {string} viewsCount - 文章浏览量
 * @param {string} like - 文章点赞数
 * @param {string} isTop - 是否置顶
 * @param {string} isHot - 是否火热
 * @param {string} isRecommend - 是否推荐
 * @param {string} reprint - 转载地址
 * @param {string} editType - 编辑类别
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/create', Article.create);

/**
 * 查询 - 查询文章
 * @route POST /api/private/article/list
 * @group 文章管理 - 查询
 * @param {object} query - 请按固定查询规范
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/list', Article.findAll);

/**
 * 查询 - 查询单个文章
 * @route POST /api/private/article/findOne
 * @group 文章管理 - 查询
 * @param {string} id - 主键
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/findOne', Article.findOne);

/**
 * 更新 - 更新文章
 * @route POST /api/private/article/update
 * @group 文章管理 - 更新
 * @param {object} tags - 文章标签
 * @param {number} sortId - 文章排序
 * @param {string} articleAuthor - 文章作者
 * @param {string} articleType - 文章类别
 * @param {string} articleTypeId - 文章类别id
 * @param {string} articleTitle - 文章标题
 * @param {string} articleSummary - 文章摘要
 * @param {string} articleContent - 文章内容
 * @param {string} articleCover - 文章封面
 * @param {string} status - 文章状态
 * @param {string} viewsCount - 文章浏览量
 * @param {string} like - 文章点赞数
 * @param {string} isTop - 是否置顶
 * @param {string} isHot - 是否火热
 * @param {string} isRecommend - 是否推荐
 * @param {string} reprint - 转载地址
 * @param {string} editType - 编辑类别
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/update', Article.update);

/**
 * 删除 - 删除单个文章
 * @route POST /api/private/article/delete
 * @group 文章管理 - 删除
 * @param {string} id - 主键
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/delete', Article.delete);

/**
 * 删除 - 删除所有文章
 * @route POST /api/private/article/deleteAll
 * @group 文章管理 - 删除
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/deleteAll', Article.deleteAll);

module.exports = router;
